API Documentation
Public Member Functions | List of all members
nkMemory::PtrPool< T > Class Template Referencefinal

A pool of objects, allocated in the heap and tracked by their pointers. More...

Public Member Functions

 PtrPool (Allocator< T > *allocator=new DefaultAllocator< T >(), Deallocator< T > *deallocator=new DefaultDeallocator< T >())
 
 ~PtrPool ()
 
size_t getPoolSize () const
 
size_t getFreeItemsCount () const
 
size_t getFlyingItemsCount () const
 
T * getObject ()
 
void releaseObject (T *object)
 

Detailed Description

template<typename T>
class nkMemory::PtrPool< T >

A pool of objects, allocated in the heap and tracked by their pointers.

Can be used to keep objects around and reusing them many times. This helps in easing memory allocation / deallocation requests, this reducing calls to system.

Constructor & Destructor Documentation

◆ PtrPool()

template<typename T >
nkMemory::PtrPool< T >::PtrPool ( Allocator< T > *  allocator = new DefaultAllocator< T >(),
Deallocator< T > *  deallocator = new DefaultDeallocator< T >() 
)

Constructor.

Parameters
allocatorAllocator to use when a new object has to be allocated. The pool takes ownership of the allocator provided.
deallocatorDeallocator to use when an object has to be freed. The pool takes ownership of the deallocator provided.

◆ ~PtrPool()

template<typename T >
nkMemory::PtrPool< T >::~PtrPool ( )

Destructor.

Member Function Documentation

◆ getPoolSize()

template<typename T >
size_t nkMemory::PtrPool< T >::getPoolSize ( ) const
Returns
Current pool size.

◆ getFreeItemsCount()

template<typename T >
size_t nkMemory::PtrPool< T >::getFreeItemsCount ( ) const
Returns
The number of items currently available in the pool.

◆ getFlyingItemsCount()

template<typename T >
size_t nkMemory::PtrPool< T >::getFlyingItemsCount ( ) const
Returns
The number of items currently in use in the pool.

◆ getObject()

template<typename T >
T* nkMemory::PtrPool< T >::getObject ( )
Returns
An object from the pool.
Remarks
If objects are free in the pool, then one of them is returned. Else, a new allocation is triggered.

◆ releaseObject()

template<typename T >
void nkMemory::PtrPool< T >::releaseObject ( T *  object)

Returns an object to the pool.

Parameters
objectObject to return to the pool.

The documentation for this class was generated from the following file: